首页>代码>SpringCloud入门项目简单实例,包括eureka集群和服务注册者>/Cloud2021 - 副本/cloud-consumer-order80/src/main/java/com/ccqq/springcloud/controller/OrderController.java
package com.ccqq.springcloud.controller;

import com.ccqq.springcloud.lb.LoadBalancer;
import com.ccqq.springcloud.entities.CommonResult;
import com.ccqq.springcloud.entities.Payment;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;
import java.net.URI;
import java.util.List;

@RestController
public class OrderController
{

//    public static final String PaymentSrv_URL = "http://localhost:8002";
    public static final String PaymentSrv_URL = "http://CLOUD-PAYMENT-SERVICE";

    @Resource
    private RestTemplate restTemplate;

    @Resource
    private DiscoveryClient discoveryClient;

    @Resource
    private LoadBalancer loadBalancer;

    @GetMapping("/consumer/payment/create") //客户端用浏览器是get请求,但是底层实质发送post调用服务端8001
    public CommonResult<Payment> create(Payment payment)
    {
        return restTemplate.postForObject(PaymentSrv_URL + "/payment/create",payment,CommonResult.class);
    }


    @GetMapping("/consumer/payment/get/{id}")
    public CommonResult<Payment> getPayment(@PathVariable Long id)
    {
        return restTemplate.getForObject(PaymentSrv_URL + "/payment/get/"+id, CommonResult.class, id);
    }

    @GetMapping("/consumer/payment/getForEntity/{id}")
    public CommonResult<Payment> getPayment2(@PathVariable Long id){
        ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PaymentSrv_URL+"/payment/get/"+id,CommonResult.class);

        if (entity.getStatusCode().is2xxSuccessful()){
            return entity.getBody();
        }else {
            return new CommonResult<>(444,"启动失败");
        }
    }

//    @GetMapping(value = "/consumer/payment/lb")
//    public String getPaymentLB(){
//        List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
//        if (instances == null || instances.size() <= 0){
//            return null;
//        }
//        ServiceInstance serviceInstance = loadBalancer.instances(instances);
//        URI uri = serviceInstance.getUri();
//
//        return restTemplate.getForObject(uri+"/payment/lb",String.class);
//    }

}
最近下载更多
微信网友_6718454036303872  LV2 2023年11月2日
落后就要挨打  LV26 2023年10月19日
kk992127170  LV6 2022年7月27日
ewan007  LV29 2022年7月21日
364550246  LV15 2022年6月18日
heqian  LV16 2022年5月18日
何松林  LV7 2022年3月7日
wdcokm  LV1 2022年2月21日
史鹏丽  LV2 2021年11月17日
最代码官方  LV167 2021年8月1日
最近浏览更多
zhujunnan  LV12 3月8日
malagou  LV1 1月22日
sunlzh888888  LV28 1月14日
whfuai  LV14 1月2日
origine1215 2023年11月29日
暂无贡献等级
YamTest  LV1 2023年11月13日
微信网友_6718454036303872  LV2 2023年11月2日
jiemomo  LV12 2023年10月19日
龚顺龙  LV3 2023年9月24日
落后就要挨打  LV26 2023年8月15日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友